package com.youngjun.user.pojo.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.youngjun.common.pojo.vo.support.BaseVO;

import java.sql.Timestamp;
import java.util.List;

public class UserVO extends BaseVO<UserVO> {

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    private String name;

    private Timestamp gmtCreated;

    private Timestamp gmtModified;

    private String username;

    private String mobile;

    private String email;

    private Boolean isEnabled;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long avatarId;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long organizationId;

    private String organizationName;

    private List<DepartmentVO> departmentList;

    private AddressVO address;

    private List<RoleVO> roleList;

    public Long getId() {
        return id;
    }

    public UserVO setId(Long id) {
        this.id = id;
        return this;
    }

    public String getName() {
        return name;
    }

    public UserVO setName(String name) {
        this.name = name;
        return this;
    }

    public Timestamp getGmtCreated() {
        return gmtCreated;
    }

    public UserVO setGmtCreated(Timestamp gmtCreated) {
        this.gmtCreated = gmtCreated;
        return this;
    }

    public Timestamp getGmtModified() {
        return gmtModified;
    }

    public UserVO setGmtModified(Timestamp gmtModified) {
        this.gmtModified = gmtModified;
        return this;
    }

    public String getUsername() {
        return username;
    }

    public UserVO setUsername(String username) {
        this.username = username;
        return this;
    }

    public String getMobile() {
        return mobile;
    }

    public UserVO setMobile(String mobile) {
        this.mobile = mobile;
        return this;
    }

    public String getEmail() {
        return email;
    }

    public UserVO setEmail(String email) {
        this.email = email;
        return this;
    }

    public Boolean getEnabled() {
        return isEnabled;
    }

    public UserVO setEnabled(Boolean enabled) {
        isEnabled = enabled;
        return this;
    }

    public Long getOrganizationId() {
        return organizationId;
    }

    public UserVO setOrganizationId(Long organizationId) {
        this.organizationId = organizationId;
        return this;
    }

    public String getOrganizationName() {
        return organizationName;
    }

    public UserVO setOrganizationName(String organizationName) {
        this.organizationName = organizationName;
        return this;
    }

    public List<DepartmentVO> getDepartmentList() {
        return departmentList;
    }

    public UserVO setDepartmentList(List<DepartmentVO> departmentList) {
        this.departmentList = departmentList;
        return this;
    }

    public AddressVO getAddress() {
        return address;
    }

    public UserVO setAddress(AddressVO address) {
        this.address = address;
        return this;
    }

    public Long getAvatarId() {
        return avatarId;
    }

    public UserVO setAvatarId(Long avatarId) {
        this.avatarId = avatarId;
        return this;
    }

    public List<RoleVO> getRoleList() {
        return roleList;
    }

    public UserVO setRoleList(List<RoleVO> roleList) {
        this.roleList = roleList;
        return this;
    }
}